1. Technical Field
This application relates to computer storage devices, and more particularly to the field of transferring data between storage devices.
2. Description of Related Art
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
In some instances, it may be desirable to copy data from one storage device to another. For example, if a host writes data to a first storage device, it may be desirable to copy that data to a second storage device provided in a different location so that if a disaster occurs that renders the first storage device inoperable, the host (or another host) may resume operation using the data of the second storage device. Such a capability is provided, for example, by the Remote Data Facility (RDF) product provided by EMC Corporation of Hopkinton, Mass. With RDF, a first storage device, denoted the “primary storage device” (or “R1”) is coupled to the host. One or more other storage devices, called “secondary storage devices” (or “R2”) receive copies of the data that is written to the primary storage device by the host. The host interacts directly with the primary storage device, but any data changes made to the primary storage device are automatically provided to the one or more secondary storage devices using RDF. The primary and secondary storage devices may be connected by a data link, such as an ESCON link, a Fibre Channel link, and/or a Gigabit Ethernet link. The RDF functionality may be facilitated with an RDF adapter (RA) provided at each of the storage devices.
One difficulty with RDF (and many systems that make use of data communication) is that they can exhibit “bursts” of data so that the maximum rate at which data is provided for transmission exceeds the capacity of the system. One way to address this is to design the system to be able to handle the expected worst case (i.e., to be able to handle the highest burst of data). However, this solution could result in an over-design of the system and, in instances where extra communication bandwidth costs money, could result in extra unnecessary cost.
Queues may be used to handle bursty data traffic where the queues absorb data for later processing. However, if queues are used, then it is necessary to provide flow control to keep the secondary storage device queue from overflowing while still properly utilizing the network's data capacity. One type of flow control, deemed “XON/XOFF”, requires that the secondary storage device provide flow control information to the primary storage device to cause the primary storage device to stop sending data when the queue of the secondary storage device gets close to being full. However, in situations where there is significant communication latency, it is necessary for the secondary storage device to send a signal to stop the flow long before the queue of the secondary storage device is close to full. Thus, in many instances, XON/XOFF flow control will cause the system to be underutilized.
Another type of flow control, called “Windowing”, has the primary storage device send data at a fixed rate to the secondary storage device. The fixed rate is based on the capacity of the system. However, one drawback to this is that it assumes that the ability of the secondary storage device to process received data is fixed and it assumes that the bandwidth of the communication link is also fixed. In instances where this is not the case, Windowing may not be appropriate.
Thus, it is desirable to have a system with flow control that addresses some of the shortcomings of the techniques described above.